package m202311.d01;

/**
 * @author haocongshun
 * @date 2023/11/01 18:51:32
 */

/**
 * 80. 删除有序数组中的重复项 II
 */
public class Q80 {

    public static void main(String[] args) {
        int[] ints = new int[]{0, 0, 0, 0, 1, 1, 2, 3, 3, 4};
        int i = new Q80().removeDuplicates(ints);
        System.out.println();
    }

    public int removeDuplicates(int[] nums) {
        if (nums.length <= 2) {
            return 2;
        }
        int start = 2, end = 2;
        while (end < nums.length) {
            if (nums[start - 2] != nums[end]) {
                nums[start] = nums[end];
                start++;
            }
            end++;
        }
        return start;
    }

//    public int removeDuplicates(int[] nums) {
//        int p = 0;
//        boolean flag = false;
//        for (int i = 1; i < nums.length; i++) {
//            if (nums[p] == nums[i]) {
//                if (!flag) {
//                    p++;
//                    nums[p] = nums[i];
//                    flag = true;
//                }
//                continue;
//            }
//            p++;
//            nums[p] = nums[i];
//            flag = false;
//        }
//        return p + 1;
//    }
}
